1. Field of the Invention
The present invention relates to a data exchange technique and in particular to a technique for improving a processing performance of a telecommunication server that is a computer server system for providing a telecommunication exchange function.
2. Description of the Related Art
As an example technique related the present invention, a laid-open Japanese patent application publication No. 02-132575 has disclosed an operation technique for writing information on results of parallel processings in a single address of a storage apparatus of each computer in a lump for the purpose of reducing a synchronous overhead at the time of parallel computers sharing data.
In a conventional telecommunication server for providing the so called IP (Internet Protocol) telephone service, a processing has been carried out in sequence by corresponding to receiving every call processing message according to a call control protocol such as an SIP (session initiation protocol). This can cause a problem in the telecommunication if a great many number of call control messages are received from customer terminals in a short time period, thus exceeding the process capability and possibly ill-affecting calls.
In a telecommunication server, a high level processing such as a control processing for a message transmission and receiving shown as “HA” in FIG. 1 is carried out in higher priority than a call processing that is a low level processing. Therefore, a required processing time of a call processing, which has been completed in three milliseconds from a receiving of a call processing message to a response back to the aforementioned message as exemplified by FIG. 1(a) at the time of a low processing load, results in taking four milliseconds as exemplified by FIG. 1(b) at the time of a high processing load in a telecommunication server made up of a computer system with one CPU (central processing unit). While a degree of such extension of a processing time varies with a configuration of a used computer system and a processing content, extension of a processing time (i.e., saturation in the number of processible calls per unit of time) is observed remarkably when a processing load exceeding approximately 70% of CPU usage ratio is given in a measurement example shown by FIG. 2. Note that the BHCA shown by FIG. 2 is defined as the number of processible busy hour call attempts.
Here, there is a method for responding to such a high processing load by using a multi-CPU system as a computer system utilized as a telecommunication server. However, an update processing of various kinds of information which are stored by a storage apparatus such as a memory or data base as one of the call processings requires an exclusive processing, that is, an independent processing by temporarily stopping other processings being carried out in parallel on the telecommunication server as a call processing in order to prevent an inconsistency of data from occurring. This ends up limiting an effectiveness of improving a process capability as a telecommunication server even if the process capability of the computer system is improved as a multi-CPU system.
Let it describe FIG. 3 which shows a summary flow of a control processing carried out by a telecommunication server by way of a flow chart. Referring to FIG. 3, the processings of S1002, S1003 and S1007 correspond to the transmission & receiving control processing shown as “HA” by FIG. 1, and those of S1004 through S1006 correspond to call processings.
First in S1001, carried out is the processing of receiving a transmitted signal (i.e., a call processing message) and inputting it into a receiving queue by the OS (operating system) of the computer. Here, in S1002, carried out is the processing, as a transmission & receiving control process, of checking the receiving queue at a predetermined interval and taking received signals in one by one existing in the receiving queue. In the subsequent S1003, carried out is the processing of handing an applicable received signal over to a call processing if receiving of a signal is confirmed by taking in the received signal.
In the call processing, first in S1004, carried out is a signal analysis processing. That is, the processing of analyzing the content of the received signal that has been received, e.g., identifying a category of the received message such as a login request, call start request, et cetera. In the analysis processing, carried out is the processing of writing the content of the received signal, e.g., information indicating the transmitter of the received signal, information indicating a state of the transmitter, in the storage apparatus such as a memory or data base, if the currently received signal is legitimate.
In S1005, carried out is a routing processing, that is, of referring to the routing data in the storage apparatus, followed by determining a suitable transmission destination in order to deliver the content of the aforementioned received signal to the addressee indicated thereby that has been received.
In S1006, carried out is a transmission processing, that is, of making a transmission signal (i.e., a response signal corresponding to the received signal) based on the content of the received signal being written in the storage apparatus, followed by requesting the transmission & receiving control process for transmitting the made transmission signal by handing it over to the aforementioned process.
In S1007 over at the transmission & receiving control process, carried out is the processing of inputting the received transmission signal into a transmission queue.
In S1008, carried out is the processing of transmitting the transmission signal existing in the transmission queue to the addressee determined by the above described routing processing by the OS of the computer system.
A telecommunication server carries out the above described control processing.
Among the control processing, as the call processing from S1004 through to S1006 can be divided into a plurality of threads, enabling a multi-thread processing by a multi-CPU computer system. The signal analysis processing in S1004, however, requires an exclusive processing since the processing includes the processing of writing, in a storage apparatus, the content of the received signal that has been received.
FIGS. 4A and 4B illustrates how processings progress when making computer systems with different numbers of CPUs carry out the above described control processing which is carried out by a telecommunication server, with FIG. 4A showing the case of one CPU, while FIG. 4B showing the case of two CPUs, respectively. As is understood by comparing between FIG. 4A and FIG. 4B, the process capability of the above described control processing even does not simply become twice if the number of CPUs is duplicated, resulting in extending the processing time of apart of processing of the call processing. This is caused by the reason for carrying out an exclusive control for the second CPU resulting in having it stop executing the primary processing during the period of the first CPU carrying out a write processing.
FIG. 5 shows an actual measurement example of the relationship between the number of CPUs of a computer system for use as a telecommunication server and the number of call processings. In the example shown by FIG. 5, an increase in the number of call processings is saturated in the neighborhood of 300 thousand BHCAs even by increasing the number of CPUs, with the case of four CPUs the number of processings decreasing as compared to the case of three CPUs because the influence of execution stoppage of other processings due to an exclusive processing becomes larger with four CPUs than with three CPUs.